Page.php

<?php

use League\CommonMark\Environment\Environment;
use League\CommonMark\Extension\CommonMark\CommonMarkCoreExtension;
use League\CommonMark\Extension\CommonMark\Node\Block\FencedCode;
use League\CommonMark\Extension\CommonMark\Node\Block\IndentedCode;
use League\CommonMark\MarkdownConverter;
use Spatie\CommonMarkHighlighter\FencedCodeRenderer;
use Spatie\CommonMarkHighlighter\IndentedCodeRenderer;

$dir = $package->get('dir.blog');

$path = $dir.'/'.$category.'/'.$slug.'.md';

$lines = explode("\n",file_get_contents($path));
for ($i=0;$i<5;$i++){
    $line = $lines[$i];
    if (substr($line,0,2)=='# '){
        $title = substr($line,2);
        $lia->seoTitle($title);
        break;
    }
}
$content = implode("  \n",$lines);

// $reg = '/^# [^\n]+/m';
// preg_match($reg,$content,$matches);
// $title = $matches[0] ?? null;
// if ($title!=null){
    // $title = substr($title,2);
    // $lia->seoTitle($title);
// }

?>
<div>
    <?php 
    $content = str_replace("\n", "  \n", $content); 
    $markdown = $content;

    $environment = new Environment(
        [   'renderer' => [
                'block_separator' => "\n",
                'inner_separator' => "\n",
                'soft_break'      => "\n",
            ]
        ]
    );

    $environment->addExtension(new CommonMarkCoreExtension());
    $environment->addRenderer(FencedCode::class, new FencedCodeRenderer());
    $environment->addRenderer(IndentedCode::class, new IndentedCodeRenderer());

    $markdownConverter = new MarkdownConverter($environment);

    echo $markdownConverter->convertToHtml($markdown);

//
    ?>
</div>